package com.cyt.sys.service;

import com.cyt.base.model.dto.ReturnResult;

import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.model.po.SysRole;
import com.cyt.sys.model.vo.SysRoleVo;

import java.util.List;

/**
 * 角色Service接口类
 *
 * @author shengQiang yu
 * @date 2019-04-24 9:53
 */
public interface SysRoleService extends BaseService<SysRole> {
    /**
     * 分页查询
     *
     * @param sysRoleVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnResult 对象
     * @author shengQiang yu
     * @date 2018-11-29 15:43
     */
    ReturnResult page(SysRoleVo sysRoleVo, int pageSize, int pageNum);
    /**
     * 根据主键id集合软删除
     *
     * @param ids 主键id集合，多个以‘，’隔开
     * @param currentUser 当前用户
     * @return ReturnResult 对象
     * @author shengQiang yu
     * @date 2018-11-29 15:43
     */
     ReturnResult removeByIds(String ids, SysUser currentUser);

    /**
     * 添加或修改
     *
     * @param sysRoleVo 对象
     * @param currentUser 当前用户
     * @return ReturnResult 对象
     * @author liufu zhu
     * @date 2018-11-29 15:43
     */
    ReturnResult addOrUpdate(SysRoleVo sysRoleVo, SysUser currentUser);

    /**
     * 查询对象集合
     *
     * @param sysRoleVo 对象
     * @return List BaseRole对象集合
     * @author shengQiang yu
     * @date 2018-11-29 15:43
     */
    List<SysRole> listExample(SysRoleVo sysRoleVo);

    /**
     * 获取角色树
     *
     * @param sysRoleVo 对象
     * @return ReturnResult 对象
     * @author shengQiang yu
     * @date 2018-11-29 15:43
     */
    ReturnResult dTreeList(SysRoleVo sysRoleVo);

    /**
     * 获取角色名称集合
     *
     * @param roleIds 角色id集合
     * @return ReturnResult 对象
     * @author shengQiang yu
     * @date 2018-11-29 15:43
     */
    String selectRoleNames(String roleIds);

    /**
     *根据角色id获取角色和角色菜单集合
     *
     * @param roleId 角色id
     * @return
     * @author shengQiang yu
     * @date 2018-12-15 10:51
     */
    SysRole selectRoleMenuByRoleId(String roleId);

    /**
     * 根据reoleId查询用户
     *
     * @return
     * @author changZheng hou
     * @date 2019/4/8 11:04
     */
    List<String>  selectUserIdByRoleId(String roleId);
}
